package com.yaorange.module.association.controller;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yaorange.module.association.service.BsWxUserService;
import com.yaorange.pojo.BsWxUser;
import com.yaorange.response.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 微信用户信息 Controller
 */
@RestController
@RequestMapping("/bsWxUser")
public class BsWxUserController {

    @Autowired
    private BsWxUserService bsWxUserService;

    /**
     * 分页查询微信用户信息列表
     *
     * @param bsWxUser 查询条件
     * @param pageNum  当前页码
     * @param pageSize 每页显示条数
     * @return 分页结果
     */
    @GetMapping("/list")
    public Result list(BsWxUser bsWxUser,
                       @RequestParam(defaultValue = "1") int pageNum,
                       @RequestParam(defaultValue = "10") int pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        List<BsWxUser> list = bsWxUserService.selectList(bsWxUser);
        PageInfo<BsWxUser> pageInfo = new PageInfo<>(list);
        return Result.success(pageInfo);
    }

    /**
     * 根据主键查询微信用户信息
     *
     * @param id 主键
     * @return 微信用户信息
     */
    @GetMapping("/{id}")
    public Result getById(@PathVariable Long id) {
        BsWxUser bsWxUser = bsWxUserService.selectById(id);
        return Result.success(bsWxUser);
    }

    /**
     * 插入微信用户信息
     *
     * @param bsWxUser 微信用户信息
     * @return 插入结果
     */
    @PostMapping
    public Result insert(@RequestBody BsWxUser bsWxUser) {
        int result = bsWxUserService.insert(bsWxUser);
        return result > 0 ? Result.success() : Result.fail("插入失败");
    }

    /**
     * 更新微信用户信息
     *
     * @param bsWxUser 微信用户信息
     * @return 更新结果
     */
    @PutMapping("/{id}")
    public Result update(@PathVariable  Long id,@RequestBody BsWxUser bsWxUser) {
        bsWxUser.setId(id);
        int result = bsWxUserService.updateById(bsWxUser);
        return result > 0 ? Result.success() : Result.fail("更新失败");
    }

    /**
     * 根据主键删除微信用户信息
     *
     * @param id 主键
     * @return 删除结果
     */
    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        int result = bsWxUserService.deleteById(id);
        return result > 0 ? Result.success() : Result.fail("删除失败");
    }
}

